#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <execinfo.h>
#include <unistd.h>
#include <signal.h>
#include <setjmp.h>
#include <stdarg.h>


void ShowStack()
{
    int i;
    void * buffer[1024];
    int n = backtrace(buffer, 1024);
    char ** symbols = backtrace_symbols(buffer, n);
    for (i = 0; i < n; i++)
    {
        printf("%s\n", symbols[i]);
    }

}
int func2()
{
    ShowStack();
    return 1;
}

int func1()
{
    func2();
    return 1;
}
int main()
{
    func1();

}